package cn.tedu.tickets;


import sun.util.resources.ms.CalendarData_ms_MY;

/*设计多线程模型,4个窗口共售票100张
* 使用多线程编程方案1:继承Thread类的方式来完成*/
public class TestThred {
    public static <MyThread> void main(String[] args) {
        TicketsThread w1=new TicketsThread("窗口一");
        TicketsThread w2=new TicketsThread("窗口二");
        TicketsThread w3=new TicketsThread("窗口三");
        TicketsThread w4=new TicketsThread("窗口四");
        w1.start();
        w2.start();
        w3.start();
        w4.start();
    }
}
class TicketsThread extends Thread{
    /*4个线程对象共计售票400张,原因是创建了4个本类的对象,各自操作各自的成员变量
    * 解决:让所有对象共享同一个变量,这个变量需要设置为静态的*/
    static int tickets=100;
    /*添加本类的含参构造,用于给线程对象起名字
    * 由于只添加了这一个含参构造,默认的无参构造被覆盖掉了*/
    public TicketsThread(String name) {
        /*表示父类的含参构造河道的名字参数,因为实际上起名的功能是父类完成的
        所以我们需要将本构造函数接到的名字,传给父类的构造函数,让父类起名字*/
        super(name);
    }

    @Override
    public void run() {
        while (true){
            System.out.println(getName()+"="+tickets--);
            if (tickets<=0)break;

        }
    }
}